package com.wxyzz.satserver.likeenshrine.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wxyzz.common.core.common.PageParam;
import com.wxyzz.common.core.entity.LikeEnshrine;
import com.wxyzz.satserver.likeenshrine.param.LikeEnshrineParam;
import com.wxyzz.satserver.likeenshrine.vo.LikeEnshrineVO;

import java.util.List;

public interface LikeEnshrineService {

    /**
     * 收藏
     * @param param
     */
    void saveEnshrineInfo(LikeEnshrineParam param);

    /**
     * 点赞
     * @param param
     */
    void saveLikeInfo(LikeEnshrineParam param);

    /**
     *  获取点赞状态
     * @param articleId
     * @return LikeEnshrine
     */
    LikeEnshrine getLikeInfo(Integer articleId);

    /**
     *  获取收藏状态
     * @param articleId
     * @return LikeEnshrine
     */
    LikeEnshrine getEnshrineInfo(Integer articleId);

    /**
     * 查看用户文章 被哪些用户 点赞和收藏
     * @param param
     * @return Page<LikeEnshrineVO>
     */
    Page<LikeEnshrineVO> getLikeAndEnshrineInfo(PageParam param);

    /**
     *  获取当前用户的 点赞数和收藏数
     * @return int
     */
    int getLikeAndEnshrineCount();

    // 当前用户是否点赞过该文章
    int isLike(Integer uid,Integer aid,Integer type);

    // 当前用户是否收藏过该文章
    int isCollect(Integer uid,Integer aid,Integer type);
}
